package it.unipg.bipod.dataModel;

import java.sql.Timestamp;

/**
 * Registrazione mappa un'entita' "registrazione" di BiPoD.<br>
 * Le sue proprieta' rispecchiano 1-1 i campi dell'entia' corrispondente.
 * 
 * @author Lorenzo Porzi
 * 
 */
public class Registrazione {
	private int idRegistrazione;
	private String utente;
	private Timestamp dataInserimento;
	private String ruolo;
	private boolean attiva;
	
	/**
	 * Costruisce una nuova registrazione "vuota".
	 */
	public Registrazione() {
		this(0, "", new Timestamp(System.currentTimeMillis()), "segretario", true);
	}
	
	/**
	 * Costruisce una registrazione con le proprieta' specificate.
	 * @param idRegistrazione
	 * @param utente
	 * @param dataInserimento
	 * @param ruolo
	 * @param attiva
	 */
	public Registrazione(int idRegistrazione, String utente, Timestamp dataInserimento, String ruolo, boolean attiva) {
		setIdRegistrazione(idRegistrazione);
		setUtente(utente);
		setDataInserimento(dataInserimento);
		setRuolo(ruolo);
		setAttiva(attiva);
	}
	
	/* -----------------
	 * Setters e Getters
	 * ----------------- */
	
	public void setIdRegistrazione(int idRegistrazione) {
		this.idRegistrazione = idRegistrazione;
	}

	public int getIdRegistrazione() {
		return idRegistrazione;
	}

	public void setUtente(String utente) {
		this.utente = utente;
	}
	
	public String getUtente() {
		return utente;
	}

	public void setDataInserimento(Timestamp datainserimento) {
		this.dataInserimento = datainserimento;
	}

	public Timestamp getDataInserimento() {
		return dataInserimento;
	}

	public void setRuolo(String ruolo) {
		if (!ruolo.equals("docente") && !ruolo.equals("segretario"))
			throw new IllegalArgumentException();
		
		this.ruolo = ruolo;
	}

	public String getRuolo() {
		return ruolo;
	}

	public void setAttiva(boolean attiva) {
		this.attiva = attiva;
	}

	public boolean isAttiva() {
		return attiva;
	}
	
	/* ------------
	 * Altri metodi
	 * ------------ */

	@Override
	public String toString() {
		return "Registrazione [attiva=" + attiva + ", dataInserimento="
				+ dataInserimento + ", idRegistrazione=" + idRegistrazione
				+ ", ruolo=" + ruolo + ", utente=" + utente + "]";
	}

	@Override
	public boolean equals(Object registrazione) {
		if (registrazione instanceof Registrazione)
			return getIdRegistrazione() == ((Registrazione)registrazione).getIdRegistrazione();
		
		return false;
	}
}
